#pragma once
#include "Observer.h"
#include "StartNode.h"
#include "EndNode.h"
#include <vector>
#include <iostream>
#include <string>
#include <sstream>
#include <hash_map>
#include "Node.h"

using namespace std;
class Circuit : public Observer
{
private:
	vector<StartNode*> inputs;
	vector<Node*> nodes;
	vector<EndNode*> outputs;
public:
	Circuit(char* path);
	void notify();
	void Simulate(void);
	void AddInput(StartNode* node);
	void AddOutput(EndNode* node);
	~Circuit(void);
};

